home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 12 / Cream of the Crop 12 (Part II) / Cream of the Crop 12 (Part II).iso / OS2 / VD08BIN.ZIP / usr / include / util / BTree.h next >
Encoding:
C/C++ Source or Header  |  1996-02-13  |  2.3 KB  |  80 lines

  1. /* -------------------------------------------------------------------
  2.  
  3.     Project: 
  4.  
  5.     Objective-C interface file for the class BTree
  6.  
  7.     COPYRIGHT (C), 1995, Thomas Baier
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Date:                Rev:
  11.     1995-Oct-04            ___
  12.  
  13.  */
  14.  
  15. #ifndef _BTREE_H_
  16. #define _BTREE_H_
  17.  
  18. /*====================================================================
  19.                        Interface of class BTree                       
  20. ====================================================================*/
  21. #include <util/OrganizedFile.h>
  22.  
  23. @interface BTree : OrganizedFile
  24. {
  25.   unsigned long  keySize;
  26.   unsigned long  dataSize;
  27.   unsigned short minitems;
  28.   unsigned short maxitems;
  29.  
  30.   void *splitKey;
  31.   void *splitData;
  32.   void *splitKey2;
  33.   void *splitData2;
  34.   long  splitPage;
  35.  
  36.   void *foundData;
  37.  
  38.   int (*cmpFunc) (void *,void *,unsigned long);
  39. }
  40.  
  41. /* -------------------------- Initialize -------------------------- */
  42. -initForFile: (char *) string keySize: (unsigned long) ks dataSize: (unsigned long) ds;
  43. -createForFile: (char *) string keySize: (unsigned long) ks dataSize: (unsigned long) ds;
  44.  
  45. /* ----------------------------- Free ----------------------------- */
  46. -free;
  47.  
  48. /* ----------- Methods for access to Instance Variables ----------- */
  49. -printOrder;
  50. -printOrderPage: (unsigned long) page;
  51. -printTree;
  52. -printPage: (unsigned long) page;
  53.  
  54. -setCmpFnc: (int (void *,void *,unsigned long)) aFunc;
  55.  
  56. -(void *) data;
  57.  
  58. /* ------------------------ Public methods ------------------------ */
  59. -(BOOL) find: (void *) key;
  60. -(BOOL) insert: (void *) key data: (void *) data;
  61. -(BOOL) deleteKey: (void *) key;
  62.  
  63. /* ----------------------- Private methods ------------------------ */
  64. -(BOOL) find: (void *) key in: (long) page;
  65. -(BOOL) insert: (void *) key data: (void *) data in: (long) page;
  66. -insert: (void *) key data: (void *) data atIndex: (unsigned short) index into: (void *) p;
  67. -(BOOL) deleteKey: (void *) key in: (unsigned long) page;
  68. -deleteNodeItemFrom: (unsigned long) page;
  69. -deleteUnderflowForIndex: (unsigned long) index from: (void *) p;
  70.  
  71. -(BOOL) findIndex: (unsigned short *) index forKey: (void *) k inPage: (void *) p;
  72.  
  73. //- (int) compare: (void *) key1 with: (void *) key2;
  74.  
  75. /* ---------------------- Archiving methods ----------------------- */
  76.  
  77. @end
  78. #endif
  79.  
  80.